"""
    多线程并行程序
"""
import time
import queue
import threading
import os

import sSerial
import gps
import comm


def main():
    # 检查制定目录是否存在，若不存在则创建目录
    if os.path.exists('./data/gpsdata') is False:
        os.makedirs('./data/gpsdata')
        pass
    if os.path.exists('./data/mpudata') is False:
        os.makedirs('./data/mpudata')
        pass
    # 创建数据队列
    q1 = queue.Queue()  # q1序列生产者是串口程序，消费者是gps解析和打包程序
    q2 = queue.Queue()  # q2序列生产者是gps解析打包后的流数据，消费者是TCP服务端
    # 创建线程
    a = threading.Thread(target=sSerial.comRead, args=(q1,)) # 开启串口程序
    b = threading.Thread(target=gps.gpsAnalysis, args=(q1, q2))  # 开启GPS解析打包线程
    c = threading.Thread(target=comm.connect, args=(q2,)) # 开启服务器线程
    # 开启线程
    a.start()
    b.start()
    c.start()
    # 等待子线程结束后结束主线程
    a.join()
    b.join()
    c.join()

    pass


if __name__ == '__main__':
    main()